
// Generated from Nasm.g4 by ANTLR 4.9.3

#pragma once


#include "antlr4-runtime.h"
#include "NasmParser.h"


namespace dspnasm {

/**
 * This class defines an abstract visitor for a parse tree
 * produced by NasmParser.
 */
class  NasmVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:

  /**
   * Visit parse trees produced by NasmParser.
   */
    virtual antlrcpp::Any visitProgram(NasmParser::ProgramContext *context) = 0;

    virtual antlrcpp::Any visitStatement(NasmParser::StatementContext *context) = 0;

    virtual antlrcpp::Any visitDeclare(NasmParser::DeclareContext *context) = 0;

    virtual antlrcpp::Any visitIdTail(NasmParser::IdTailContext *context) = 0;

    virtual antlrcpp::Any visitData(NasmParser::DataContext *context) = 0;

    virtual antlrcpp::Any visitType(NasmParser::TypeContext *context) = 0;

    virtual antlrcpp::Any visitSign(NasmParser::SignContext *context) = 0;

    virtual antlrcpp::Any visitInstructionPacket(NasmParser::InstructionPacketContext *context) = 0;

    virtual antlrcpp::Any visitInstruction(NasmParser::InstructionContext *context) = 0;

    virtual antlrcpp::Any visitThreeOp(NasmParser::ThreeOpContext *context) = 0;

    virtual antlrcpp::Any visitTwoOp(NasmParser::TwoOpContext *context) = 0;

    virtual antlrcpp::Any visitOneOp(NasmParser::OneOpContext *context) = 0;

    virtual antlrcpp::Any visitNoneOp(NasmParser::NoneOpContext *context) = 0;

    virtual antlrcpp::Any visitOperand(NasmParser::OperandContext *context) = 0;

    virtual antlrcpp::Any visitRegs(NasmParser::RegsContext *context) = 0;

    virtual antlrcpp::Any visitReg(NasmParser::RegContext *context) = 0;

    virtual antlrcpp::Any visitMemory(NasmParser::MemoryContext *context) = 0;

    virtual antlrcpp::Any visitLop(NasmParser::LopContext *context) = 0;

    virtual antlrcpp::Any visitRop(NasmParser::RopContext *context) = 0;

    virtual antlrcpp::Any visitExpr(NasmParser::ExprContext *context) = 0;

    virtual antlrcpp::Any visitAdds(NasmParser::AddsContext *context) = 0;

    virtual antlrcpp::Any visitItem(NasmParser::ItemContext *context) = 0;

    virtual antlrcpp::Any visitMuls(NasmParser::MulsContext *context) = 0;

    virtual antlrcpp::Any visitFactor(NasmParser::FactorContext *context) = 0;

    virtual antlrcpp::Any visitShift(NasmParser::ShiftContext *context) = 0;

    virtual antlrcpp::Any visitVal(NasmParser::ValContext *context) = 0;

    virtual antlrcpp::Any visitNum(NasmParser::NumContext *context) = 0;

    virtual antlrcpp::Any visitSize(NasmParser::SizeContext *context) = 0;


};

}  // namespace dspnasm
